import util
print(util.getSum(1,2))
'''
1. 命名的规范
'''
# 1a = 12 #不规范的命名
a1 = 12
x = 12
name = 12
a = "123"
_a = "1234"
subOrderList = ["123", "123"]
# 命名的规范：
# 1. 硬性规定：名称可以包含，字母、数字、下划线；以字母或者_开头，不能以数字开头
# 2. 通用规范命名代表具体的含义；命名规范：驼峰命名法
'''
2. 变量类型
整数、浮点、字符串、布尔
'''
intX = 12  # int  数值类型
floatX = 1.2  # float 数值类型
strX = "12"  # str
booleanX = True  # boolean True、False

'''
3. 变量的运算
'''
intY = 123  # int
floatY = 1.23  # float
strY = "123"  # str
booleanY = False  # boolean True、False

print(intY, floatY, strY, booleanY)

# 数值类型可以进行数学运算
result = intX % 7
# print(result)
# print(type(result))

# 字符串操作用法: 拼接、大写、小写、替换、统计
strA = "I am fine"
strB = "thank you"

print(strA + " " + strB)
upperStrA = strA.upper()
print(upperStrA)
lowerStrA = upperStrA.lower()
print(lowerStrA)
strC = strA.replace(" ", ",")
print(strC)  # I,am,fine
countStrA = strA.count(" ")
print(countStrA)  # 2

'''
4. 变量的转换
'''
strIntX = str(intX)
print(type(strIntX))  # <class 'str'>
intStrx = int(strX)
print(type(intStrx))  # <class 'int'>

'''
5. 数据结构
list: 列表
tuple: 元组
set: 集合
dictionary: 字典
'''
### 5.1 列表
#### 1.可以操作改变内部变量的值
#### 2.可以存储多个类型的变量
#### 3.可以存储相同值的不同变量
# listA = [123,124,125]
listA = [123, "123", 12.3, False]
print(listA)
scoreList = []
print(scoreList)
# 列表添加操作
scoreList.append(123)
scoreList.append(123)
scoreList.append(124)
scoreList.append(125)

_scoreList = [126, 127]

# scoreList.extend(_scoreList)
scoreList = scoreList + _scoreList

# 取值(索引：从0开始,负数从-1开始)
print(scoreList[0])
print(scoreList[1])
print(scoreList[2])
print(scoreList[-0])
print(scoreList[-1])

print(len(scoreList))

# 列表删除操作
scoreList.remove(123)
scoreList.remove(126)

# 列表排序
sortScoreList1 = sorted(scoreList) # 默认从小到大排序
print(sortScoreList1)
sortScoreList1 = sorted(scoreList, reverse = True) # 从大到小排序
print(sortScoreList1)
print(scoreList)

sortScoreList2 = scoreList.sort(reverse=True)
print(sortScoreList2)
print(scoreList)

# scoreSum = 0
# for score in scoreList:
#     scoreSum = scoreSum + score
#     print(score)
# print(scoreSum)
# print(sum(scoreList))

### 5.2 元组
#### 1.不可改变
#### 2.可以存储多个类型的变量
#### 3.可以存储相同值的不同变量
tupleX = (123, 123, "123", 12.3, False)
print(tupleX)
print(tupleX[1])

### 5.3 集合
#### 1.可以改变
#### 2.可以存储多个类型的变量
#### 3.不可以存储相同值的不同变量
#### 4.集合中没有固定存储顺序，不能用索引取值，但可以遍历
setX = {123, 123, "123", 12.3, False}
print(setX)
# print(setX[1]) # TypeError: 'set' object is not subscriptable
for value in setX:
    print(value)

setX.add(12)
setX.add(123)
# setX.append(124) # 'set' object has no attribute 'append'
print(setX)

setX.remove(123)
print(setX)

### 4. 字典
#### 1.可以改变
#### 2.可以存储多个类型的变量
#### 3.存储格式是key:value形式
dict = {"崔德馥": 100, "李静怡": 99, "崔德馥的学号": "2013"}
print(dict["崔德馥"])
print(dict["李静怡"])

dict["张三"] = 98
print(dict)

del dict["张三"]
print(dict)

print(dict.keys())
print(dict.values())


dict["崔德馥"] = dict["崔德馥"] -40
print(dict)


dict["崔德馥的学号"] = dict["崔德馥的学号"] + "0"
print(dict)
